package com.game.base.auth;

import android.content.Context;

import com.game.base.auth.constant.ThirdConstant;

import tech.jianyue.auth.Auth;
import tech.jianyue.auth.AuthBuildForQQ;
import tech.jianyue.auth.AuthBuildForWX;
import tech.jianyue.auth.AuthBuildForZFB;
import tech.jianyue.auth.AuthCallback;

/**
 * 三方授权管理[https://github.com/WJ-TT/AuthSDK]
 * Created by Su on 2019/5/22.
 */
public class AuthUtils {

    /**
     * 初始化AuthSDK
     */
    public static void initAuthSDK() {
        Auth.init().setQQAppID(ThirdConstant.QQ_APP_ID)
                .setWXAppID(ThirdConstant.WEIXIN_APP_ID)
                .setWXSecret(ThirdConstant.WEIXIN_APP_SECRET)
                .addFactoryForQQ(AuthBuildForQQ.getFactory())
                .addFactoryForWX(AuthBuildForWX.getFactory())
                .addFactoryForZFB(AuthBuildForZFB.getFactory())
                .build();
    }

    // ================ 登录 =======================

    /**
     * 微信登录
     */
    public static void loginWX(Context context, AuthCallback callback) {
        Auth.withWX(context)
                .setAction(Auth.Login)
                .build(callback);
    }

    /**
     * QQ登录
     */
    public static void loginQQ(Context context, AuthCallback callback) {
        Auth.withQQ(context)
                .setAction(Auth.Login)
                .build(callback);
    }

    // ====================== 支付 ==========================

    /**
     * 微信支付
     */
    public static void payWX(Context context, AuthCallback callback) {
        Auth.withWX(context)
                .setAction(Auth.Pay)
                .payNonceStr("")
                .payPackageValue("")
                .payPartnerId("")
                .payPrepayId("")
                .paySign("")
                .payTimestamp("")
                .build(callback);
    }

    /**
     * 支付宝支付
     */
    public static void payZFB(Context context, AuthCallback callback) {
        Auth.withZFB(context)
                .setAction(Auth.Pay)
                .payOrderInfo("")
                .payIsShowLoading(true) // 支付宝提供, 是否显示加载动画
                .build(callback);
    }

    // ====================== 分享  具体查看[https://github.com/WJ-TT/AuthSDK]  ==========================
    // 微信中 shareToSession shareToTimeline shareToFavorite 互斥, 只能使用其中一个;

    /**
     * 微信： 分享文本
     */
    public static void shareWXText(Context context, AuthCallback mCallback) {
        Auth.withWX(context)
                .setAction(Auth.ShareText)
                .shareToSession()      // 分享到对话
                .shareToTimeline()     // 分享到朋友圈
                .shareToFavorite()     // 分享到收藏, 三个分享方式如果共存, 则只取最后一个.
                .shareText("Text")                     // 必填
                .shareTextDescription("Description")   // 必填
                .shareTextTitle("Title")
                .build(mCallback);
    }

    /**
     * 微信： 分享图片
     */
    public static void shareWXImage(Context context, AuthCallback mCallback) {
//        Auth.withWX(context)
//                .setAction(Auth.ShareImage)
//                .shareToTimeline()
//                .shareImageTitle("Title")
//                .shareImage(getBitmap())   	           // 必填
//                .build(mCallback);
    }
}
